//
//  WelcomeViewController.swift
//  Weibo
//
//  Created by apple on 15/12/10.
//  Copyright © 2015年 idcast. All rights reserved.
//

import UIKit
import SDWebImage
class WelcomeViewController: UIViewController {
    //设置界面  试图的层次结构
    override func loadView() {
        //直接使用给背景图像作为跟试图 不用关心图像的缩放问题
        view = backImageView
        setupUI()
    }
    //试图加载完成后之后的后续处理 通常用来设置数据
    override func viewDidLoad() {
        super.viewDidLoad()
      //异步加载用户头像
      iconView.sd_setImageWithURL(UserAccountViewModel.sharedUserAccount.avatarUrl, placeholderImage: UIImage(named: "avatar_default_big"))

    }
    
    //试图已经显示 通常可以设置动画 键盘的处理
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        //1 由于是自动布局的 要更改约束 来改变位置
        iconView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(-view.bounds.height + 200)
        }
        //2 设置动画
        self.welcomeLabel.alpha = 0
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 10, options: [], animations: { () -> Void in
            /**
            - 工作原理：当有一个运行循环启动，自动布局系统，会`收集`所有的约束变化
            - 在运行循环结束前，调用 layoutSubviews 函数`统一`设置 frame
            - 如果希望某些约束提前更新！使用 `layoutIfNeeded` 函数让自动布局系统，提前更新当前收集到的约束变化
            */
            //修改所有可动画的属性 自动布局的动画
            self.view.layoutIfNeeded()
            
            }) { (_) -> Void in
                
                UIView.animateWithDuration(0.8, animations: { () -> Void in
                    self.welcomeLabel.alpha = 1
                    }, completion: { (_) -> Void in
                        print("OK")
                        //发送通知
                        NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootViewControllerNotification, object: nil)
                })
        }
    }

    // MARK 懒加载控件
    //背景图形
    private lazy var backImageView: UIImageView = UIImageView(imageName:"ad_background")
    
    // 定义个头像
    private lazy var iconView: UIImageView = {
    
        //设置头像的图片
        let iv = UIImageView(imageName: "avatar_default_big")
        
        //设置圆角
        iv.layer.cornerRadius = 45
        iv.layer.masksToBounds = true
        
        return iv
    }()
    //下面的标题
    private lazy var welcomeLabel: UILabel = UILabel(title: "小傻归来", fontSize: 18)
}

//设置界面
extension WelcomeViewController {

    private func setupUI() {
        //1 添加控件
        view.addSubview(iconView)
        view.addSubview(welcomeLabel)
 
        //2 设置布局
        iconView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-200)
            make.width.equalTo(90)
            make.height.equalTo(90)
            
        }
        //标题的自动布局
        welcomeLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconView.snp_centerX)
            make.top.equalTo(iconView.snp_bottom)
            
        }

    }
    
}
